查看原文
其他

深度学习算法(第32期)----强化学习入门必读

左右Shawn 智能算法 2021-09-10

上期我们一起学习了变分自编码器及其实现的相关知识,
深度学习算法(第31期)----变分自编码器及其实现

今天开始以及后面几期我们一起学一下强化学习方面的知识。

强化学习的前世今生

如今强化学习在机器学习领域可谓是热的烫手烫脚,虽然比较热门,但是却是在1950左右提出来的,提出之后,也出现了很多有意思的应用,特别是在游戏和机器控制方面,但是很少有爆炸性的新闻出来。

直到2013年,一个来自英国研究者发起的DeepMind项目,强化学习才有了一个革命性的发展。那么这个项目是做什么的呢?DeepMind可以学习去玩任何从头开始的Atari游戏,而且在很多游戏中,都超越了人类。然而,它仅仅使用像素作为输入,而没有使用游戏规则的任何先验知识。这是一个不得了的发现。并且在2016年3月这个系统击败了世界围棋冠军李世石。之前从未有程序能勉强打败这个游戏大师,更不用说是世界冠军了。今天, 整个强化学习领域都充满了新的想法,都具有广泛的应用范围,DeepMind在2014年被谷歌以超过5亿美元收购。

那么他们是怎么做到的呢?事后看来,原理似乎相当简单:他们将深度学习运用到强化学习领域,结果却超越了他们最疯狂的设想。接下来几期,我们将首先解释强化学习是什么,以及它擅长于什么,然后我们将介绍两个在深度强化学习领域最重要的技术:策略梯度和深度Q网络(DQN),包括讨论马尔可夫决策过程(MDP)。我们将使用这些技术来训练一个模型来平衡移动车上的杆子,另外玩一个Atari游戏。同样的技术可以用于各种各样的任务,从步行机器人到自动驾驶汽车。

强化学习是干什么的?

在强化学习中,我们的目标是训练一个智能体,该智能体(agent)在环境(environment)中观察(observation)并且做出决策(action),随后它会得到奖励(reward)。智能体的目标是去学习如何行动能才能最大化期望奖励。如果可以拟人化的话,我们可以认为正奖励是愉快,负奖励是痛苦(这样的话奖励一词就有点误导了)。简单来说,智能体在环境中行动,并且在实验和错误中去学习最大化它的愉快,最小化它的痛苦。

这是一个相当广泛的设置,可以适用于各种各样的任务。下图是几个例子:

  • a. 智能体可以是一个控制机械狗的程序。在这个例子中,环境就是真实的世界,智能体通过许多的传感器,例如摄像机或者激光传感器来观察,它可以通过给电机发送信号来行动。它可以被编程设置为如果到达了目的地就得到正奖励,如果浪费时间,或者走错方向,或摔倒了就得到负奖励。

  • b. 智能体可以是控制 MS.Pac-Man 游戏的程序。在此例中,环境是 Atari 游戏的仿真,行为是9个操纵杆位(上下左右中间等等),观察是屏幕,回报就是游戏得分点数。

  • c. 智能体也可以是棋盘游戏的程序例如:围棋。

  • d. 智能体也可以不用去控制一个实体(或虚拟的)去移动。例如它可以是一个智能程序,当它调整到目标温度以节能时会得到正奖励,当人们需要自己去调节温度时它会得到负奖励,所以智能体必须学会预测人们的需要。

  • e. 智能体也可以去观测股票市场价格以实时决定买卖。当然奖励的依据为挣钱或者赔钱。

需要注意的是,没有正奖励也可以,比方说让智能体走迷宫,迷宫中分分秒秒的时间就是负奖励,所以,智能体要尽快的找到出口。在强化学习的领域,还有很多合适的应用,例如自动驾驶汽车,在网页上放广告,或者控制一个图像分类系统让它明白它应该关注于什么。

好了,我们知道强化学习就是去训练一个智能体,让该智能体尽可能的在所处环境中得到最大化奖励。说白了就是让智能体找到一个最好的算法,去适应当下的环境。

策略搜索的概念

智能体通过算法去决定如何行动称为智能体的策略,比如策略可以是一个观测为输入,行动为输出的神经网络,如下图:

策略可以是你能想到的任何算法,甚至可以不确定。比方说,一个真空吸尘器机器人,它的奖励就是30分钟内吸起灰尘的数量。它的策略可以是每秒钟以p的概率向前移动,或者以1-p的概率随机左右转,旋转角度是[-r, r]之间的随机角度。由于该策略有一定的随机性,因此被称为随机策略,机器人的轨迹不确定,并保证能达到任何地方捡起所有灰尘。那么问题是30分钟内,它将捡起多少灰尘?

那么,如何去训练这样一个智能体呢?有两个策略参数可以调节,概率p和角度范围r。一种方法就是暴力搜索,尝试很多种参数组合,最终找到最佳的策略如下图,这种方法比较野蛮,当策略空间比较大的时候,用这种方法去搜索最佳策略,简直就是大海捞针。

另一个搜索策略的方法是遗传进化算法,比方说,第一次迭代我们可以随机创建100个策略并尝试下,根据策略适应环境的适应度进行抛弃80个适应度低的策略,让剩余20个策略进行交叉变异繁衍4代,幸存的加上子代共同构成第二次迭代,如此迭代寻优。

还有一种方法使用一些优化技术。通过评估关于策略参数的奖励梯度,然后通过跟随梯度向更高的奖励(梯度上升)调整这些参数。这种方法被称为策略梯度(policy gradient,PG),我们将在后面几期详细讨论。例如,回到真空吸尘器机器人,你可以稍微增加概率P并评估这是否增加了机器人在 30 分钟内拾起的灰尘的量;如果确实增加了,就相对应增加P,否则减少P。

至此,我们已经基本了解强化学习是用来做什么的了,下期我们将使用Tensorflow来实现梯度策略算法,但是在这之前我们需要为智能体创造一个生存的环境,所以下期我们会先介绍下OpenAI工具包。希望有些收获,欢迎留言或进社区共同交流,喜欢的话,就点个赞吧,您也可以置顶公众号,第一时间接收最新内容。


智能算法,与您携手,沉淀自己,引领AI!

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存